export interface ApprovalFlowTemplateVO {
  /**
   * 主键ID
   */
  id: string | number;

  /**
   * 模板名称
   */
  templateName: string;

  /**
   * 模板描述
   */
  description: string;

  /**
   * 模板类型
   */
  templateType: string;

  /**
   * 阶段数量
   */
  stageCount?: number;

  /**
   * 是否启用
   */
  isActive: string;

  /**
   * 创建人ID
   */
  createBy: string;

  /**
   * 创建人姓名
   */
  createName: string;

  /**
   * 创建时间
   */
  createTime: string;

  /**
   * 审核阶段列表
   */
  stageList?: ApprovalStageTemplateVO[];
}

export interface ApprovalFlowTemplateForm extends BaseEntity {
  /**
   * 主键ID
   */
  id?: string | number;

  /**
   * 模板名称
   */
  templateName?: string;

  /**
   * 模板描述
   */
  description?: string;

  /**
   * 模板类型
   */
  templateType?: string;

  /**
   * 阶段数量
   */
  stageCount?: number;

  /**
   * 是否启用
   */
  isActive?: string;

  /**
   * 审核阶段列表
   */
  stageList?: ApprovalStageTemplateForm[];
}

export interface ApprovalFlowTemplateQuery extends PageQuery {
  /**
   * 模板名称
   */
  templateName?: string;

  /**
   * 模板类型
   */
  templateType?: string;

  /**
   * 是否启用
   */
  isActive?: string;

  /**
   * 创建时间
   */
  createTime?: string;

  /**
   * 日期范围参数
   */
  params?: any;
}

/**
 * 审核阶段模板视图对象
 */
export interface ApprovalStageTemplateVO {
  /**
   * 主键ID
   */
  id?: string | number;

  /**
   * 流程模板ID
   */
  templateId?: string | number;

  /**
   * 阶段名称
   */
  stageName: string;

  /**
   * 阶段顺序
   */
  stageSort: number;

  /**
   * 审核规则（0:全员通过 1:一人通过 2:按比例通过）
   */
  approvalRule: string;

  /**
   * 通过比例（approval_rule=2时使用）
   */
  passRatio?: number;

  /**
   * 是否必须
   */
  isRequired: string;

  /**
   * 阶段描述
   */
  stageDescription?: string;

  /**
   * 预设审核人员ID（逗号分隔）
   */
  approversId?: string;

  /**
   * 固定审核人员
   */
  fixationApprover?: string;

  /**
   * 预设审核人员姓名（逗号分隔，后端自动转换）
   */
  approversName?: string;
}

/**
 * 审核阶段模板表单对象
 */
export interface ApprovalStageTemplateForm {
  /**
   * 主键ID
   */
  id?: string | number;

  /**
   * 固定审核人员
   */
  fixationApprover?: string;

  /**
   * 流程模板ID
   */
  templateId?: string | number;

  /**
   * 阶段名称
   */
  stageName?: string;

  /**
   * 阶段顺序
   */
  stageSort?: number;

  /**
   * 审核规则（0:全员通过 1:一人通过 2:按比例通过）
   */
  approvalRule?: string;

  /**
   * 通过比例（approval_rule=2时使用）
   */
  passRatio?: number;

  /**
   * 是否必须
   */
  isRequired?: string;

  /**
   * 阶段描述
   */
  stageDescription?: string;

  /**
   * 预设审核人员ID（逗号分隔）
   */
  approversId?: string;

  /**
   * 预设审核人员姓名（逗号分隔，用于前端显示）
   */
  approversName?: string;
}

/**
 * 审核实例更新参数
 */
export interface ApprovalInstanceUpdateForm {
  /**
   * 业务ID
   */
  businessId: string | number;

  /**
   * 业务类型
   */
  businessType: string;

  /**
   * 审核状态
   */
  approvalStatus: string;
}

/**
 * 审核参数对象
 */
export interface ApprovalAuditBo {
  /**
   * 业务ID
   */
  businessId: string | number;

  /**
   * 业务类型
   */
  businessType: string;

  /**
   * 审核状态（1：审核通过，2：审核不过）
   */
  status: string;

  /**
   * 审核意见
   */
  idea?: string;
}

/**
 * 审核记录视图对象
 */
export interface ApprovalRecordVo {
  /**
   * 主键ID
   */
  id: string | number;

  /**
   * 审核实例ID
   */
  instanceId: string | number;

  /**
   * 审核人ID
   */
  approverId: string | number;

  /**
   * 审核人姓名
   */
  approverName: string;

  /**
   * 审核结果（0:不通过 1：通过）
   */
  approvalResult: string;

  /**
   * 审核意见
   */
  approvalOpinion?: string;

  /**
   * 审核时间
   */
  approvalTime?: string;

  /**
   * 创建时间
   */
  createTime: string;
}

/**
 * 审核阶段视图对象
 */
export interface ApprovalStageVo {
  /**
   * 主键ID
   */
  id: string | number;

  /**
   * 实例ID
   */
  instanceId: string | number;

  /**
   * 阶段名
   */
  stageName: string;

  /**
   * 阶段顺序
   */
  stageSort: number;

  /**
   * 业务类型
   */
  businessType: string;

  /**
   * 审核状态（0未提交 1已提交 2审核中 3审核通过 4审核不过）
   */
  approvalStatus: string;

  /**
   * 审核规则（0全员通过 1一人通过 2按比例通过）
   */
  approvalRule: string;

  /**
   * 通过比例
   */
  passRatio?: number;

  /**
   * 是否必须
   */
  isRequired: string;

  /**
   * 阶段描述
   */
  stageDescription?: string;

  /**
   * 是否固定审核人
   */
  fixationApprover: string;

  /**
   * 创建时间
   */
  createTime: string;

  /**
   * 创建人
   */
  createBy: string | number;

  /**
   * 审批记录
   */
  approvalRecords: ApprovalRecordVo[];

  /**
   * 是否为当前阶段
   */
  isCurrent: boolean;
}

/**
 * 审核实例视图对象
 */
export interface ApprovalInstanceVo {
  /**
   * 主键ID
   */
  id: string | number;

  /**
   * 业务类型
   */
  businessType: string;

  /**
   * 业务ID
   */
  businessId: string | number;

  /**
   * 业务标题
   */
  businessTitle?: string;

  /**
   * 审核规则
   */
  approvalRule: string;

  /**
   * 审核规则描述
   */
  approvalRuleDesc?: string;

  /**
   * 通过比例
   */
  passRatio?: number;

  /**
   * 申请人ID
   */
  applicantId: string | number;

  /**
   * 申请人姓名
   */
  applicantName: string;

  /**
   * 提交时间
   */
  submitTime: string;

  /**
   * 完成时间
   */
  finishTime?: string;

  /**
   * 备注
   */
  remark?: string;

  /**
   * 审核阶段（当前处于哪个审核阶段）
   */
  approvalCurrentStage: number;

  /**
   * 审核状态（0未提交 1已提交 2审核中 3审核通过 4审核不过）
   */
  approvalStatus: string;

  /**
   * 审核状态描述
   */
  approvalCurrentStatusDesc?: string;

  /**
   * 模版ID
   */
  templateId: string | number;

  /**
   * 是否使用的模版
   */
  isTemplate: string;

  /**
   * 创建时间
   */
  createTime: string;

  /**
   * 阶段数量
   */
  stageCount: number;

  /**
   * 审核阶段列表
   */
  approvalStageVos: ApprovalStageVo[];
}
